//给你两个字符串 s1 和 s2 ，写一个函数来判断 s2 是否包含 s1 的排列。 
//
// 换句话说，s1 的排列之一是 s2 的 子串 。 
//
// 
//
// 示例 1： 
//
// 
//输入：s1 = "ab" s2 = "eidbaooo"
//输出：true
//解释：s2 包含 s1 的排列之一 ("ba").
// 
//
// 示例 2： 
//
// 
//输入：s1= "ab" s2 = "eidboaoo"
//输出：false
// 
//
// 
//
// 提示： 
//
// 
// 1 <= s1.length, s2.length <= 10⁴ 
// s1 和 s2 仅包含小写字母 
// 
// Related Topics 哈希表 双指针 字符串 滑动窗口 👍 443 👎 0


import java.util.HashSet;

//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public boolean checkInclusion(String s1, String s2) {
        HashSet set1 = new HashSet();
        for(int i = 0; i < s1.length(); i++){
            set1.add(s1.charAt(i));
        }

        for(int i = 0; i <= s2.length() - s1.length(); i++){
            HashSet set2 = new HashSet();
            for (int j = i; j < i + s1.length(); j++){
                if(set1.contains(s2.charAt(j))){
                    set2.add(s2.charAt(j));
                }else {
                    continue;
                }
            }
            if( set2.size() == s1.length()){
                return true;
            }
        }
        return false;
    }
}
//leetcode submit region end(Prohibit modification and deletion)
